package edu.zqu.specialty.project.domain.pojo;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 专业
 * </p>
 *
 * @author 郭泽鹏
 * @since 2020-06-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="Specialty对象", description="专业模块：专业")
public class Specialty implements Serializable {

    private static final long serialVersionUID=1L;

    @ApiModelProperty(value = "专业id")
      @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "学校id")
    private Long collegeId;

    @ApiModelProperty(value = "院系id。本专业是这个部门设立的")
    private Long departmentId;

    @ApiModelProperty(value = "专业代码")
    private String code;

    @ApiModelProperty(value = "专业名称")
    private String name;

    @ApiModelProperty(value = "专业英文名")
    private String englishName;

    @ApiModelProperty(value = "学科门类id")
    private Integer disciplineCategoryId;

    @ApiModelProperty(value = "一级学科id")
    private Integer firstLevelDisciplineId;

    @ApiModelProperty(value = "二级学科id")
    private Integer secondLevelDisciplineId;

    @ApiModelProperty(value = "专业可以获得的学位id")
    private Integer academicId;

    @ApiModelProperty(value = "专业可以获得的学历id")
    private Integer academicDegreeId;

    @ApiModelProperty(value = "学制")
    private Integer schoolingLength;

    @ApiModelProperty(value = "最短学制")
    private Integer minSchoolingLength;

    @ApiModelProperty(value = "最长学制")
    private Integer maxSchoolingLength;

    @ApiModelProperty(value = "总学分")
    private Integer totalCredit;

    @ApiModelProperty(value = "本专业的简要介绍")
    private String note;

    @ApiModelProperty(value = "创建时间")
      @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
      @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @ApiModelProperty(value = "操作者")
    private Long byWho;

    @ApiModelProperty(value = "本记录是否有效")
    @TableLogic
    private Boolean deleted;

    @ApiModelProperty(value = "历史版本")
    @Version
    private Long lastVersion;


}
